package com.qianyu.core.entity.bean;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qianyu.core.entity.base.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;

/**
* 充值订单
* @TableName tb_order_pay
*/
@Data
@ApiModel(value = "充值订单")
@TableName("tb_order_pay")
public class OrderPay extends BaseBean {

    /**
    * 平台订单号
    */
    @NotBlank(message="[平台订单号]不能为空")
    @Size(max= 32,message="编码长度不能超过32")
    @ApiModelProperty("平台订单号")
    private String orderSn;
    /**
    * 用户id
    */
    @NotNull(message="[用户id]不能为空")
    @ApiModelProperty("用户id")
    private Long userId;

    @ApiModelProperty("用户名称")
    @TableField(exist = false)
    private String nickname;
    /**
    * 支付通道id
    */
    @NotNull(message="[支付通道id]不能为空")
    @ApiModelProperty("支付通道id")
    private Long payWayId;
    /**
    * 订单状态:0=待支付,1=待审核,2=已成功,3=已失败,4=已关闭
    */
    @NotNull(message="[订单状态:0=待支付,1=待审核,2=已成功,3=已失败,4=已关闭]不能为空")
    @ApiModelProperty("订单状态:0=待支付,1=待审核,2=已成功,3=已失败,4=已关闭")
    private Integer status;
    /**
    * 订单备注
    */
    @NotBlank(message="[订单备注]不能为空")
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("订单备注")
    private String remark;
    /**
    * 交易截图
    */
    @Size(max= 1200,message="编码长度不能超过1200")
    @ApiModelProperty("交易截图")
    private String image;
    /**
    * 转U单号
    */
    @Size(max= 80,message="编码长度不能超过80")
    @ApiModelProperty("转U单号")
    private String txid;
    /**
    * 订单金额
    */
    @NotNull(message="[订单金额]不能为空")
    @ApiModelProperty("订单金额")
    private BigDecimal orderAmount;
    /**
    * 订单U数量(创建时的汇率)
    */
    @NotNull(message="[订单U数量(创建时的汇率)]不能为空")
    @ApiModelProperty("订单U数量(创建时的汇率)")
    private BigDecimal orderUsdt;
    /**
    * USDT收款信息
    */
    @NotBlank(message="[USDT收款信息]不能为空")
    @ApiModelProperty("USDT收款账号id")
    private Long walletAccountId;
    /**
    * USDT汇率
    */
    @NotBlank(message="[USDT汇率]不能为空")
    @Size(max= 32,message="编码长度不能超过32")
    @ApiModelProperty("USDT汇率")
    private BigDecimal usdtRate;
    /**
    * 实付USDT
    */
    @NotNull(message="[实付USDT]不能为空")
    @ApiModelProperty("实付USDT")
    private BigDecimal payUsdt;
    /**
    * 实际支付金额
    */
    @NotNull(message="[实际支付金额]不能为空")
    @ApiModelProperty("实际支付金额")
    private BigDecimal payAmount;
    /**
    * 提交支付时间
    */
    @ApiModelProperty("提交支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date payTime;
    /**
    * 审核时间
    */
    @ApiModelProperty("审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date auditTime;
    /**
    * 审核人id
    */
    @NotNull(message="[审核人id]不能为空")
    @ApiModelProperty("审核人id")
    private Long auditId;

    @ApiModelProperty("审核人名称")
    @TableField(exist = false)
    private String auditName;
    /**
    * 失效时间
    */
    @ApiModelProperty("失效时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date expireTime;

    /**
    * 下单ip
    */
    @NotBlank(message="[下单ip]不能为空")
    @Size(max= 120,message="编码长度不能超过120")
    @ApiModelProperty("下单ip")
    private String ip;

}
